const { defineConfig, cy } = require("cypress");

module.exports = defineConfig({
  projectId: "1uh1mv",
  video: true,
  e2e: {
    specPattern: "**/*.cy.{ts,js}",
    viewportHeight: 960,
    viewportWidth: 1380,
    baseUrl: "http://localhost:3000/",
    // baseUrl: "http://192.168.16.115:9036/",
    // 事件
    setupNodeEvents(on, config) {
      /**
       * after:run  在整个测试运行结束后执行
       * after:screenshot  在截取屏幕截图之后执行
       * after:spec 在单个测试规范（spec）执行结束后执行相关操作。可能用于记录该测试规范的执行时间、结果等信息。
       * before:run
       * before:spec
       * dev-server:start
       * file:preprocessor
       * before:browser:launch 在浏览器启动之前执行。您可以在此处进行浏览器的相关配置，例如设置浏览器窗口大小、加载特定的插件等。
       *  on('event name', (results) => { })
       *  部分事件不触发 https://github.com/cypress-io/cypress/issues/22360
       */
      on("task", {
        async customTask(data) {
          // 在这里执行一些自定义的操作，可以是异步的
          console.log(`Received data in custom task: ${data}`);
          return `Processed result for ${data}`;
        },
      });
      on("after:run", () => {
        console.log(1);
      });
      on("before:run", () => {
        console.log(2);
      });
      on("after:spec", () => {
        console.log(3);
      });
      on("before:spec", () => {
        console.log(4);
      });
      on("after:screenshot", () => {
        console.log(5);
      });
      on("before:browser:launch", () => {
        console.log(6);
        // cy.exec('node main.js').then((result) => {
        //   // 处理执行结果
        // });
      });
    },
  },
});
